#!/usr/bin/eruby -Ke -C euc-jp <% require "nkf" require "cgi" require "net/imap" require "util" require "config" MailInfo = Struct.new(:uid, :seen, :from, :subject, :date) cgi = CGI.new open_session(cgi) do |session| if cgi.key?("mailbox") session["mailbox"] = cgi["mailbox"][0] end $mailbox = session["mailbox"] imap = Net::IMAP.new(HOST) imap.authenticate(session["auth_type"], session["user"], session["password"]) imap.select(session["mailbox"]) if imap.responses.delete("EXISTS")[-1] == 0 $summary = nil else $summary = [] mails = imap.fetch(1..-1, ["UID", "FLAGS", "ENVELOPE", "INTERNALDATE"]) mails.each do |mail| uid = mail.attr["UID"] seen = mail.attr["FLAGS"].include?(:Seen) from = format_from(mail.attr["ENVELOPE"].from) subject = format_subject(mail.attr["ENVELOPE"].subject) date = format_date(mail.attr["INTERNALDATE"]) $summary.push(MailInfo.new(uid, seen, from, subject, date)) end $summary.reverse! end end %> <%=$mailbox%>のメール一覧

<%=$mailbox%>のメール一覧

[メールボックス一覧]

<% if $summary.nil? %>

このメールボックスにメールはありません

<% else %> <% for mail in $summary %> <% if mail.seen %> <% else %> <% end %> <% end %>
ID送信者件名日付
<%=mail.uid%> <%=mail.from%> <%=mail.subject%> <%=mail.date%><%=mail.uid%> <%=mail.from%> <%=mail.subject%> <%=mail.date%>
<% end %>